# 3班-39熊锦涛
# 员工管理系统
# 请不要输入其它奇奇怪怪的字符啊！！！
# 请不要输入其它奇奇怪怪的字符啊！！！
# 请不要输入其它奇奇怪怪的字符啊！！！
# 没有抄袭，绝对原创！
# 全凭感觉，如有错误多多包涵QWQ

import copy
orders = []  # 员工列表
Date = []  # 统计数据


def do_1():
    print("正在运行新增员工系统······")
    print("请不要输入其它奇奇怪怪的字符啊！！！")
    while 1:
        order_mun = int(input("请输入员工工号"))
        for a in orders:
            if a[0] == order_mun:
                print("警告!工号重复,请到员工修改系进行修改!")

        order_name = input("请输入员工姓名")
        for a in orders:
            if a[0] == order_mun:
                print("警告!工号重复")

        order_sex = input("请输入员工性别,男->m,女->w")
        order_age = int(input("请输入员工年龄"))
        order_price = int(input("请输入员工薪资"))

        order = [order_mun, order_name, order_sex, order_age, order_price]
        orders.append(order)

        print("添加成功!")
        num = int(input("输入1以继续，输入其他数字以退出"))

        if num == 1:
            continue
        else:
            break

    for x in range(0, len(orders) - 1):
        for y in range(0, len(orders) - x - 1):
            if orders[y][0] > orders[y + 1][0]:
                temp = orders[y]
                orders[y] = orders[y + 1]
                orders[y + 1] = temp


def do_2():
    print("正在运行修改员工系统······")
    print("1-修改单个员工工号-（输入数字1）")
    print("2-修改单个员工姓名-（输入数字2）")
    print("3-修改单个员工性别-（输入数字3）")
    print("4-修改单个员工年龄-（输入数字4）")
    print("5-修改单个员工薪资-（输入数字5）")
    print("6-修改整个员工数据-（输入数字6）")
    print("7-退出系统-（输入数字7）")
    print("请不要输入其它奇奇怪怪的字符啊！！！")

    function_num = int(input())

    if function_num == 1:  # 修改工号
        date = int(input("请输入员工原工号"))

        b = 0
        c = 0

        for a1 in orders:
            if a1[c] == date:  # 查到了
                print("查询到该在职员工")
                print(a1)
                update = int(input("请输入员工新工号"))

                for a2 in orders:
                    if a2[c] == update:  # 被占用
                        print("该工号已被占用，请核对后再进行修改!")
                        break
                    else:
                        a1[c] = update  # 浅拷贝
                        b += 1
                        print("更新成功!")
                        break
            else:
                continue
        if b != 1:  # 没查到
            print("没有查询到该名员工，或输入错误，请核实后再查询!")

    elif function_num == 2:  # 修改姓名
        date = input("请输入员工原姓名")

        b = 0
        c = 1

        for a in orders:
            if a[c] == date:  # 查到了
                print("查询到该在职员工")
                print(a)
                update = input("请输入员工新姓名")

                a[c] = update  # 浅拷贝

                b += 1
                print("更新成功!")
                break
            else:
                continue
        if b != 1:  # 没查到
            print("没有查询到该名员工，或输入错误，请核实后再查询!")

    elif function_num == 3:  # 修改性别
        date = input("请输入员工姓名")

        b = 0
        c = 1

        for a in orders:
            if a[c] == date:  # 查到了
                print("查询到该在职员工")
                print(a)
                update = input("请输入员工新性别")

                a[c+1] = update  # 浅拷贝

                b += 1
                print("更新成功!")
                break
            else:
                continue
        if b != 1:  # 没查到
            print("没有查询到该名员工，或输入错误，请核实后再查询!")

    elif function_num == 4:  # 修改年龄
        date = input("请输入员工姓名")

        b = 0
        c = 1

        for a in orders:
            if a[c] == date:  # 查到了
                print("查询到该在职员工")
                print(a)
                update = int(input("请输入员工新年龄"))

                a[c+2] = update  # 浅拷贝

                b += 1
                print("更新成功!")
                break
            else:
                continue
        if b != 1:  # 没查到
            print("没有查询到该名员工，或输入错误，请核实后再查询!")

    elif function_num == 5:  # 修改薪资
        date = input("请输入员工姓名")

        b = 0
        c = 1

        for a in orders:
            if a[c] == date:  # 查到了
                print("查询到该在职员工")
                print(a)
                update = int(input("请输入员工新薪资"))

                a[c+3] = update  # 浅拷贝

                b += 1
                print("更新成功!")
                break
            else:
                continue
        if b != 1:  # 没查到
            print("没有查询到该名员工，或输入错误，请核实后再查询!")

    elif function_num == 6:  # 修改整个员工数据
        date = input("请输入原员工姓名")

        b = 0
        c = 1

        for a in orders:
            if a[c] == date:  # 查到了
                print("查询到该在职员工")
                print(a)
                update_mun = int(input("请输入新员工工号"))  # 浅拷贝
                update_name = input("请输入新员工姓名")  # 浅拷贝
                update_sex = input("请输入新员工性别")  # 浅拷贝
                update_age = int(input("请输入新员工年龄"))  # 浅拷贝
                update_price = int(input("请输入新员工薪资"))  # 浅拷贝

                a[c-1] = update_mun
                a[c] = update_name
                a[c+1] = update_sex
                a[c+2] = update_age
                a[c+3] = update_price

                b += 1
                print("更新成功!")
                break
            else:
                continue
        if b != 1:  # 没查到
            print("没有查询到该名员工，或输入错误，请核实后再查询!")

    elif function_num == 7:  # 退出
        print("退出成功!")


def do_3():
    print("正在运行删除员工系统······")
    print("警告！删除后操作不可逆，丢失数据无法被找回，请慎重！！！")
    print("请不要输入其它奇奇怪怪的字符啊！！！")
    mun = int(input("输入1以继续，输入其它数字以退出"))

    if mun == 1:
        while 1:
            order_name = input("请输入需要删除的员工的姓名")
            b1 = 0
            b2 = 0
            c = 1
            d = 0

            for a in orders:
                if a[c] == order_name:
                    print("查询到符合条件的在职员工如下")
                    print(a)

                    b1 += 1
                else:
                    continue
            if b1 != 1:
                print("没有查询到该名员工，或输入错误，请核实后再查询!")

            number = int(input("输入需要删除员工对应的工号"))
            for a in orders:
                if a[d] == number:
                    del a
                    print("删除成功!")

                    b2 += 1
                else:
                    continue
            if b2 != 1:
                print("没有查询到该名员工，或输入错误，请核实后再查询!")

    else:
        print("退出成功！")


def do_4():
    print("正在运行员工查找系统······")
    print("请不要输入其它奇奇怪怪的字符啊！！！")
    order_name = input("请输入员工姓名")
    b = 0
    c = 1

    for a in orders:
        if a[c] == order_name:  # 查到了
            print("查询到符合条件的在职员工如下")
            print(a)

            b += 1
        else:
            continue

    if b != 1:  # 没查到
        print("没有查询到该名员工，或输入错误，请核实后再查询!")

    print("查找完成!")


def do_5():  # 有问题，貌似数组不能直接拿来运算，我也不知道怎么搞定这个······
    print("正在运行数据统计系统······")
    print("1-统计平均年龄-（输入数字1）")
    print("2-统计平均薪资-（输入数字2）")
    print("3-统计最高薪资-（输入数字3）")
    print("4-统计最低薪资-（输入数字4）")
    print("5-统计对应薪资员工数量-（输入数字5）")
    print("6-统计对应性别员工数量-（输入数字6）")
    print("7-统计对应年龄员工薪资-（输入数字7）")
    print("8-退出系统-（输入数字8）")
    print("请不要输入其它奇奇怪怪的字符啊！！！")

    num = int(input("您的选择是？"))
    average_age = 0
    average_salary = 0
    c1 = 3
    c2 = 4

    if num == 1:  # 统计平均年龄
        for a in orders:
            d = a[c1]
            average_age = average_age + d

        print("所有在职员工平均年龄为", average_age / len(orders))

    elif num == 2:  # 统计平均薪资
        for a in orders:
            d = a[c2]
            average_salary = average_salary + d

        print("所有在职员工平均薪资为", average_salary / len(orders))

    elif num == 3:  # 最高薪资
        date_max = 0
        for date in orders:
            if date_max < date[4]:
                date_max = date[4]

        print("在职员工最高薪资为", date_max)

    elif num == 4:  # 最低薪资
        date_min_1 = orders[0][4]
        for date in orders:
            date_min_2 = date[4]
            if date_min_1 < date_min_2:
                continue
            else:
                date_min_1 = date_min_2

        print("在职员工最低薪资为", date_min_1)

    elif num == 5:  # 对应薪资员工数量
        date = int(input("请输入薪资数"))
        b = 0

        for a in orders:
            if a[4] == date:
                b += 1

        print("对应薪资的人数为", b)

    elif num == 6:  # 对应性别员工数量
        b1 = 0
        b2 = 0

        for a in orders:
            if a[2] == 'm':
                b1 += 1
            else:
                b2 += 1

        print("男员工的人数为", b1)
        print("女员工的人数为", b2)

    elif num == 7:  # 对应年龄员工薪资
        date = int(input("请输入年龄"))
        b = 0

        for a in orders:
            if a[3] == date:
                b += 1

        print("对应年龄的人数为", b)

    elif num == 8:  # 退出系统
        print("退出成功！")

    else:  # 输入错误
        print("都说了不要输入其它奇奇怪怪的字符啊！！！坏孩子,不听话！！！")


def do_6():  # 这个没事过，不知道有没有有问题，凭着感觉来的······
    print("正在运行统计排序系统······")
    print("1-年龄排序-（输入数字1）")
    print("2-薪资排序-（输入数字2）")
    print("3-退出系统-（输入数字3）")
    print("请不要输入其它奇奇怪怪的字符啊！！！")
    num = int(input("您的选择是？"))
    date = copy.deepcopy(orders)

    if num == 2:  # 薪资排序
        print("1-正向排序(从小到大)-（输入数字1）")
        print("2-逆向排序(从大到小)-（输入数字2）")
        bit = int(input("您的选择是？"))

        if bit == 1:  # 正向排序
            for x in range(0, len(date) - 1):
                for y in range(0, len(date) - x - 1):
                    if date[y][4] > date[y + 1][4]:
                        temp = date[y]
                        date[y] = date[y + 1]
                        date[y + 1] = temp

        elif bit == 2:  # 逆向排序
            for x in range(0, len(date) - 1):
                for y in range(-1, -(len(date)) + x + 1):
                    if date[y][4] > date[y + 1][4]:
                        temp = date[y]
                        date[y] = date[y + 1]
                        date[y + 1] = temp

        print(date)

    elif num == 3:  # 退出系统
        print("退出成功！")
    else:
        print("都说了不要输入其它奇奇怪怪的字符啊！！！坏孩子,不听话！！！")


def do_7():
    print("所有在职员工如下")
    print(orders)


def menu():
    while 1:
        print("1-新增员工-（输入数字1）")
        print("2-修改员工-（输入数字2）")
        print("3-删除员工-（输入数字3）")
        print("4-员工查找-（输入数字4）")
        print("5-数据统计-（输入数字5）")
        print("6-排序统计-（输入数字6）")
        print("7-总在职员工列表-（输入数字7）")
        print("8-使用结束-（输入数字8）")
        print("请不要输入其它奇奇怪怪的字符啊！！！")

        function_num = int(input())

        if function_num == 1:
            print("欢迎使用新增员工功能")
            do_1()

        elif function_num == 2:
            print("欢迎使用修改员工功能")
            do_2()

        elif function_num == 3:
            print("欢迎使用删除员工功能")
            do_3()

        elif function_num == 4:
            print("欢迎使用员工查找功能")
            do_4()

        elif function_num == 5:
            print("欢迎使用数据统计功能")
            do_5()

        elif function_num == 6:
            print("欢迎使用排序统计功能")
            do_6()

        elif function_num == 7:
            print("欢迎访问所有在职员工总列表")
            do_7()

        elif function_num == 8:
            print("使用结束，欢迎下次使用!")
            break

        print("---------------------------------------")

    print("---------------------------------------")


if __name__ == '__main__':
    menu()
